Surface Filling/fr

Other languages:

Surface Remplissage

Emplacement du menu
Surface → Filling...
Ateliers
Surface
Raccourci par défaut
Aucun
Introduit dans la version
0.17
Voir aussi
Aucun

Description

Surface Remplissage crée une surface à partir d'une série d'arêtes de délimitation connectées. La courbure de la surface peut être contrôlée en outre par des arêtes et des sommets non délimités, ainsi que par une surface de support.

La géométrie de base peut appartenir à des courbes créées avec l'atelier Draft ou l'atelier Sketcher, mais aussi à des objets solides tels que ceux créés avec l'atelier Part ou l'atelier PartDesign.

Deux surfaces remplies délimitées par quatre arêtes situées sur le plan XY. La surface de droite est en plus contrôlée par une arête non délimitée.

Utilisation

  1. Appuyez sur le bouton Remplissage.
  2. Le panneau de tâches Limites s'ouvre. Voir Options.
  3. Sélectionnez deux ou plusieurs arêtes dans la vue 3D :
    • Il n'est pas nécessaire d'appuyer sur le bouton Ajouter une arête dans la section Limites à ce moment-là.
    • Les arêtes doivent être sélectionnées dans un ordre consécutif.
    • Les arêtes doivent être connectées, mais la frontière complète ne doit pas nécessairement être fermée.
    • Le contour complet ne doit pas s'auto-intersecter.
    • Pour un contour circulaire de 360°, deux arêtes semi-circulaires peuvent être sélectionnées.
  4. Un aperçu de la forme finale s'affiche dès qu'un nombre suffisant de géométries valides a été sélectionné.
  5. Optionnellement, sélectionnez une Surface de support. Voir Exemple.
  6. Vous pouvez sélectionner une ou plusieurs Contraintes d'arête.
  7. Vous pouvez sélectionner une ou plusieurs Contraintes de sommets.
  8. Appuyez sur le bouton OK.

Options

Exemple

Surface de support agit comme une contrainte supplémentaire pour la surface. L'exemple simple suivant vous donnera une idée de la façon dont cela fonctionne :

  1. Dans l' atelier Part, créez un cylindre et définissez DonnéesAngle à 180°.
  2. Passez à l' atelier Surface et appuyez sur Remplissage.
  3. Sélectionnez les deux bords semi-circulaires et les deux arêtes rectilignes qui les relient.
  4. Le résultat correspond aux quatre arêtes de délimitation mais la forme intérieure est très différente de la face cylindrique.
  5. Éditez l'objet Surface et pour la Surface de support, sélectionnez la face cylindrique.
  6. La forme modifiée correspond beaucoup mieux à la face cylindrique.

Propriétés

Surface Remplissage (classe Surface::Filling) est dérivée de la classe de base Part Feature (classe Part::Feature via la sous-classe Part::Spline), elle partage donc toutes les propriétés de cette dernière.

Outre les propriétés décrites dans Part Feature, Surface Remplissage a les propriétés suivantes dans l'éditeur de propriétés.

Données

Filling

Vue

Base

Script

Voir aussi : FreeCAD Script de base.

L'outil Remplissage de Surface peut être utilisé dans des macros et depuis la console Python en ajoutant l'objet Surface :: Filling.

import FreeCAD as App
import Draft

doc = App.newDocument()

a = App.Vector(-20, -20, 0)
b = App.Vector(-18, 25, 0)
c = App.Vector(60, 26, 0)
d = App.Vector(33, -20, 0)

points1 = [a, App.Vector(-20, -8, 0), App.Vector(-17, 7, 0), b]
obj1 = Draft.make_bspline(points1)

points2 = [b, App.Vector(0, 25, 0), c]
obj2 = Draft.make_bspline(points2)

points3 = [c, App.Vector(37, 4, 0), d]
obj3 = Draft.make_bspline(points3)

points4 = [d, App.Vector(-2, -18, 0), a]
obj4 = Draft.make_bspline(points4)
doc.recompute()

surf = doc.addObject("Surface::Filling", "Surface")
surf.BoundaryEdges = [(obj1, "Edge1"),
                      (obj2, "Edge1"),
                      (obj3, "Edge1"),
                      (obj4, "Edge1")]
doc.recompute()

# ---------------------------------------------------------
points_spl = [App.Vector(-10, 0, 2),
              App.Vector(4, 0, 7),
              App.Vector(18, 0, -5),
              App.Vector(25, 0, 0),
              App.Vector(30, 0, 0)]
aux_edge = Draft.make_bspline(points_spl)
doc.recompute()

surf.UnboundEdges = [(aux_edge, "Edge1")]
doc.recompute()

# ---------------------------------------------------------
aux_v1 = Draft.make_line(App.Vector(-13, -12, 5),
                         App.Vector(-13, -12, -5))
aux_v2 = Draft.make_line(App.Vector(-3, 18, 5),
                         App.Vector(-3, 18, -5))
doc.recompute()

surf.Points = [(aux_v1, "Vertex2"),
               (aux_v2, "Vertex1")]
doc.recompute()